#ifndef __WIZ_BASE_TYPETRAITS_REMOVE_POINTER_HPP__SHANHAOBO_19800429__
#define __WIZ_BASE_TYPETRAITS_REMOVE_POINTER_HPP__SHANHAOBO_19800429__

namespace Wiz
{
    namespace TypeTraits
    {
        namespace Remove
        {
            template<typename T>
            struct Pointer
            {
                typedef T tType;
            };

            template<typename T>
            struct Pointer<T*>
            {
                typedef T tType;
            };

            template<typename T>
            struct Pointer<T**>
            {
                typedef T tType;
            };

            template<typename T>
            struct Pointer<T***>
            {
                typedef T tType;
            };

            template<typename T>
            struct Pointer<T const *>
            {
                typedef T tType;
            };

            template<typename T>
            struct Pointer<T * const>
            {
                typedef T tType;
            };

            template<typename T>
            struct Pointer<T const * const>
            {
                typedef T tType;
            };
        } /// end of namespace Remove
    } /// end of namespace TypeTraits
} /// end of namespace Wiz

#endif /*__WIZ_BASE_TYPETRAITS_REMOVE_POINTER_HPP__SHANHAOBO_19800429__*/
